summaryrefslogtreecommitdiffstats
path: root/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/InstallableAdapter.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/InstallableAdapter.kt')
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/InstallableAdapter.kt36
1 files changed, 13 insertions, 23 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/InstallableAdapter.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/InstallableAdapter.kt
index e960fbaab..4218c4e52 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/InstallableAdapter.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/InstallableAdapter.kt
@@ -6,43 +6,33 @@ package org.yuzu.yuzu_emu.adapters
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
-import androidx.recyclerview.widget.RecyclerView
import org.yuzu.yuzu_emu.databinding.CardInstallableBinding
import org.yuzu.yuzu_emu.model.Installable
+import org.yuzu.yuzu_emu.viewholder.AbstractViewHolder
-class InstallableAdapter(private val installables: List<Installable>) :
- RecyclerView.Adapter<InstallableAdapter.InstallableViewHolder>() {
+class InstallableAdapter(installables: List<Installable>) :
+ AbstractListAdapter<Installable, InstallableAdapter.InstallableViewHolder>(installables) {
override fun onCreateViewHolder(
parent: ViewGroup,
viewType: Int
): InstallableAdapter.InstallableViewHolder {
- val binding =
- CardInstallableBinding.inflate(LayoutInflater.from(parent.context), parent, false)
- return InstallableViewHolder(binding)
+ CardInstallableBinding.inflate(LayoutInflater.from(parent.context), parent, false)
+ .also { return InstallableViewHolder(it) }
}
- override fun getItemCount(): Int = installables.size
-
- override fun onBindViewHolder(holder: InstallableAdapter.InstallableViewHolder, position: Int) =
- holder.bind(installables[position])
-
inner class InstallableViewHolder(val binding: CardInstallableBinding) :
- RecyclerView.ViewHolder(binding.root) {
- lateinit var installable: Installable
-
- fun bind(installable: Installable) {
- this.installable = installable
-
- binding.title.setText(installable.titleId)
- binding.description.setText(installable.descriptionId)
+ AbstractViewHolder<Installable>(binding) {
+ override fun bind(model: Installable) {
+ binding.title.setText(model.titleId)
+ binding.description.setText(model.descriptionId)
- if (installable.install != null) {
+ if (model.install != null) {
binding.buttonInstall.visibility = View.VISIBLE
- binding.buttonInstall.setOnClickListener { installable.install.invoke() }
+ binding.buttonInstall.setOnClickListener { model.install.invoke() }
}
- if (installable.export != null) {
+ if (model.export != null) {
binding.buttonExport.visibility = View.VISIBLE
- binding.buttonExport.setOnClickListener { installable.export.invoke() }
+ binding.buttonExport.setOnClickListener { model.export.invoke() }
}
}
}